package constructor;
/*
static关键字的特点：
    1.随着类的加载而加载
    2.优先于对象存在
    3.被类的所有对象共享
    举例：一个班级的学生都公用一个班级编号，那么这个班级编号就应该是static修饰的
    即如果一个成员变量是被所有对象共享的，那么它就应该被定义为static的
    4.static修饰的成员变量或者成员方法可以通过类名.调用
    推荐使用类名调用
    静态修饰的内容一般我们称其为：与类相关的，类成员
 */
public class Demo7_Static {
    public static void main(String[] args) {
        PersonStatic p1 = new PersonStatic();//创建对象
        p1.name = "123";//调用姓名属性并赋值
        p1.country = "中国";//调用国籍属性并赋值
        p1.speak();

        PersonStatic p2 = new PersonStatic();//调用姓名属性并赋值
        p2.name = "456";//调用国籍属性并赋值
        //p2.country = "中国";
        p2.speak();

        System.out.println(PersonStatic.country);
        //静态多了一种调用方式，可以通过类名.调用

    }
}

class PersonStatic1 {
    String name;
    static String country;

    public PersonStatic1(String name) {
        this.name = name;
    }

    public void speak() {
        System.out.println(name+"..."+country);
    }
}
